package main

import (
	"fmt"
	"html/template"
	"net/http"
)

func f1(w http.ResponseWriter, r *http.Request){
	// 定义一个函数kua
	// 要么只有一个返回值，要么有两个返回值，第二个返回值必须是error类型
	k := func(name string)(string, error) {
		return name + "真水", nil
	}
	// 定义模板
	t := template.New("f.tmpl")	// 先创建一个带名字的模板对象,名字一定要与模板的名字能对应上
	// 告诉模板引擎，我现在多了一个自定义的函数kua
	t.Funcs(template.FuncMap{
		"kua": k,
	})
	// 解析模板
	_, err := t.ParseFiles("./f.tmpl")
	if err != nil {
		fmt.Printf("parse template failed,err: %v\n", err)
		return
	}
	name := "蓝天"
	// 渲染模板
	t.Execute(w, name)
}

func demo1 (w http.ResponseWriter, r *http.Request) {
	// 定义模板
	// 解析模板
	t, err := template.ParseFiles("./t.tmpl", "./ul.tmpl")
	if err != nil {
		fmt.Printf("parse template failed, err: %v\n", err)
		return
	}
	name := "小王子"
	// 渲染模板
	t.Execute(w, name)
}
func main() {
	http.HandleFunc("/", f1)
	http.HandleFunc("/tmpDemo", demo1)

	err := http.ListenAndServe(":9000", nil)
	if err != nil {
		fmt.Printf("HTTP server start failed,err: %v\n", err)
		return
	}
}